#ifndef __OEGKI_CURVE_HEADER__
#define __OEGKI_CURVE_HEADER__

//////////////////////////////////////////////////////////////////////
// include files
#include <OETypes.h>
#include <OEGKTypes.h>
#include <OEMathTypes.h>

namespace OE { namespace OEGK {

//////////////////////////////////////////////////////////////////////
// interface OEGKICurve definition begins

struct OEGKICurve : public OEGKIGeometry
{
  virtual OEResult param (OEGKCurveParam& crvPrm) = 0;
  virtual OEResult positionFromParam (const OEGKCurveParam& crvPrm, OEReal64Vector& outPt) = 0;
  virtual OEResult paramFromPosition (const OEReal64Vector& pt, OEGKCurveParam& crvPrm) = 0;
};

// interface OEGKICurve definition ends
//////////////////////////////////////////////////////////////////////

}; };

#endif // __OEGKI_CURVE_HEADER__
